home *** CD-ROM | disk | FTP | other *** search
/ Aminet 24 / Aminet 24 (1998)(GTI - Schatztruhe)[!][Apr 1998].iso / Aminet / comm / irc / TeaBot.lha / teabot / TeaBot.arexx < prev    next >
Text File  |  1998-02-20  |  44KB  |  48 lines

  1. /* Compressed with CompressRexx v3.0 (CMPMODE NORMAL), (C) 1993-96 Robert Hofmann */
  2. Options Results;BotCMD = '^';GetMyNick;MyNick = Result;UserHost MyNick;Hostx = Result;Ops = Result;Rand = Random(1,5,time('s'));If ~Exists("Ram:Fish") Then Do;Address command 'resident c:copy pure';Address command 'c:Copy s:fish ram:fish';Address command 'c:copy s:MCP.Gurudat ram:MCP.Gurudat';Address command 'c:copy s:jlog ram:jlog';Address command 'c:copy s:c-codes.txt ram:c-codes.txt';Address command 'c:copy s:faqlist ram:faqlist';Address command 'c:copy s:hangwords ram:hangwords';Address command 'c:copy s:hangtemp ram:hangtemp';If ~Exists("S:WorkSpace") Then Do;Open(WorkS,'S:WorkSpace',W);WriteLn(WorkS,'OFF');Close(WorkS);'ECHO P='d2c(27)'b«TeaBot» Made OPS protection workspace file in S: Default is Ops Protect off.';End;Address command 'c:copy s:workspace ram:workspace';If ~Exists("Env:FServ") Then FServAssign();Open(FS,"Env:FServ",R);Direct=ReadLn(FS);Address command 'Assign Fserv: 'Direct;'ECHO P='d2c(27)'b«TeaBot» Made assign 'direct' from Env:FServ';Close(FS)
  3. 'ECHO P='d2c(27)'b«TeaBot» Data files setup.';'ECHO P='d2c(27)'b«TeaBot» This is TeaBot the AmIRC bot.';End;RandV = '1';PingR = '1';Parse arg Cak':'Nick'!'username'@'Hosta' 'Junky'MSG 'Typeo':'Rest;If SubStr(Left(username,length(username)-(length(username)-1)),1) = '~' Then Username = Substr(left(username,length(Username)),2);If upper(cak) = 'JOIN' then Do;Joiny = '1';LevelCh();End;If upper(cak) = 'MODE' then do;parse var junky mod' 'channell' 'ty' 'nicka;If upper(nick) ~= upper(mynick) & upper(Nicka) ~= Upper(mynick) & upper(ty) = '-O' then do;getchannel;chan = result;If upper(nick) = upper(Nicka) then do;"RAW NOTICE" nick ":Deop yourself, D'oh ! ;)";Exit;End;Open(Workspace,"ram:WorkSpace",R);Firstline = ReadLN(Workspace);If Upper(Firstline) = 'OFF' Then Exit;'ECHO P='d2c(27)'b«TeaBot» Ops Deop detected. Checking auth.';"RAW NOTICE" nick ":Ops Deop detected, Checking your authority.";Hostname = Username'@'Hosta;Call CheckLev;If Levelx < 4 Then Do;'RAW MODE 'chan' -o 'nick;'RAW MODE 'chan' +o 'nicka
  4. "RAW NOTICE" nick ":Your Deop authority failed !";"RAW NOTICE" nicka ":Awww ! I've slapped his bum for you :-)";Exit;End;Else "RAW NOTICE" nick ":Deop authority granted !";end;if upper(nicka) = upper(mynick) & upper(ty) = '+O' then "RAW NOTICE" nick ":Thanks mate ! Hugs and kisses and other nice stuff :-)";if upper(nicka) = upper(mynick) & upper(ty) = '-O' then "RAW NOTICE" nick ":Oh I'm going to cry :~-(";if upper(nicka) = upper(mynick) & upper(ty) = '+V' then "RAW NOTICE" nick ":Thanks mate ! I have a wonderful voice :)";if upper(nicka) = upper(mynick) & upper(ty) = '-V' then "RAW NOTICE" nick ":Erk ! Come on its only voice dude ! :)";Exit;End;User = Nick;Chan = Typeo;Resty = Substr(left(Rest,length(rest)-1),2);Parse upper var Resty Thingy' 'Scum;Botx = SubStr(Left(Rest,length(rest)-(length(rest)-1)),1);Scummy = Substr(Left(Scum,length(scum)-(Length(Scum)-1)),1)
  5. SVersion = d2c(2)'TeaBot'd2c(2)' 0.96eBETA  (20th Feb 1998). 'd2c(2)'-Aminet Release-'d2c(2)' This Bot is EMAILWARE, ste@inorbit.com with comments bugs and stuff, Coded by 'd2c(2)'Stephen Evans'd2c(2)' and Beta Tested by 'd2c(2)'David Handsaker'd2c(2)' :)';Total = username'@'Hosta;If Thingy = "PING" Then do;If PingR = '1' & Scummy ~= ' ' Then Do;If Rand = '1' Then Outp = 'Haheheh smell my finger.';If Rand = '2' Then Outp = 'TeaBot by Ste@inorbit.com';If Rand = '3' Then Outp = 'Oo-er nice ping ! Do it again :)';If Rand = '4' Then Outp = 'Like a cup of tea ? :).';If Rand = '5' Then Outp = 'TeaBot Ping !.';"RAW NOTICE" user ":"OutP;End;Exit;end;If RandV = '1' & Thingy = 'VERSION' Then Do;"RAW NOTICE" user ":"d2c(1)"VERSION "SVersion||d2c(1);Exit;End;If Thingy = "DCC" Then do;Parse var Resty ' 'type' 'Filename' ';If type = 'CHAT' Then do;'RAW NOTICE' user ':Use /msg 'Mynick' fserv for file access.';Exit;End;If type = 'SEND' Then do;GETDCCRECEIVEDIR;DDir = Result;If Exists(DDir||Filename) Then Do
  6. "Say /Dcc Resume "User;Exit;End;"RAW NOTICE" user ":I'll have a look at the file -"Filename"- Soon. :)";"Say /Dcc get "user;Exit;End;If type = 'MOVE' Then "RAW NOTICE" user ":DCC MOVE ? You sure (this Won't auto get)";Exit;End;Parse var rest Ht'//'Address' ';Htt = Upper(ht);httx = Right(htt,5);IF httx = 'HTTP:' Then do;If ~Exists("Ram:Temp") Then Do;Open(Loggy,'Ram:Temp',W);WriteLn(Loggy,"Http://members.tripod.com/~Mr_Q");Close(Loggy);End;fulladdrr = 'Http://'Address;Open(Test,"ram:temp",R);Do Until EOF(Test);MD = READLN(Test);If upper(FullAddrr) = upper(MD) Then do;Close(test);LevelCh();End;End;Open(temp,"ram:temp",A);WRITELN(Temp,FullAddrr);Close(test);close(temp);LevelCh();End;LevelCh();MainStuff: Procedure Expose Dyn Thingy MyNick Out Joiny Gret News Botx Blobby Chan Rest nick Typeo user username hosta Scummy Level BotCMD SVersion CL ddir systemcon;If Level = 0 Then Exit;If Botx ~= BotCMD & upper(Typeo) ~= upper(MyNick) & Joiny ~= '1' then Exit
  7. If upper(Typeo) = upper(Mynick) & Botx ~= BotCMD Then Xest = Rest;Else Xest = Substr(left(Rest,length(rest)),2);Channels;Parse Var Result '#'TChan1'#'TChan2;Parse var Xest Commandx' 'Blobby;Command = upper(Commandx);If command = 'SHOWCOMMANDS' | Command = 'NICK' | Command = 'QUIT' | Command = 'PART' | Command = 'JOIN' | Command = 'SVIEW' | Command = 'INFO' | Command = 'LEVEL' | Command = 'HELP' | Command = 'FAQDEL' | Command = 'FAQLIST' | Command = 'URL' | Command = 'FAQADD' Then Sh = 1;Com = Upper(Blobby);TChan1 = '#'TChan1;If TChan2 ~= '' Then TChan2 = '#'TChan2;Else Chan = TChan1;If Joiny = '1' & Level > '4' Then Do;If gret ~= '' & Upper(user) ~= upper(Mynick) Then 'RAW PRIVMSG 'Chan ' :'user' 'Gret;'RAW MODE 'Chan' +o 'User;'ECHO P='d2c(27)'b«TeaBot» Tried to op user 'User;If Upper(User) = Upper(Mynick) Then 'RAW PRIVMSG 'Chan ' :TeaBots FServ is ready for access, /msg 'Mynick' fserv';Exit;End;If Joiny = '1' & level ~= '5' Then Do
  8. If gret ~= '' & Upper(user) ~= upper(Mynick) Then 'RAW PRIVMSG 'Chan ' :'User' 'Gret;exit;End;If upper(Typeo) = upper(Mynick) & TChan2 ~= '' Then Do;Parse var Blobby TheChan' 'TheRest1;If upper(TheChan) = upper(TChan2) then kk = 1;If upper(TheChan) = upper(TChan1) Then kk = 1;If kk = 'KK' & SH ~= '1' Then Do;"RAW NOTICE" nick ":I am currently on two channels you must give your command like this,";"RAW NOTICE" nick ":'/msg "MyNick" "Commandx" #TheChannel <the rest>', Messages to the channel are not affected by this.";"RAW NOTICE" nick ":I need to know which channel you want the outputed text to go to :)";Exit;End;Chan = Strip(TheChan);IF SH ~= '1' THEN Blobby = Therest1;End;If Command = 'SHOWCOMMANDS' | Command = 'COMMANDS' | Command = 'HELLO' then Showem();If Command = 'ME' Then Meem();If Command = 'OPSPROTECT' Then OpsProem();If Command = 'NICK' Then Nickem();If Command = 'NUT' Then Nutem();If Command = 'FSERVASSIGN' Then FServem();If Command = 'VIEWGREET' Then ViewGreetem()
  9. If Command = 'HANG' Then Hangem();If Command = 'LEVEL' Then Levelem();If Command = 'HELP' Then Helpem();If Command = 'QUIT' Then Quitem();If Command = 'HANGR' Then HangR();If Command = 'SETGREET' | Command = 'DELGREET' Then SetGreetem();If Command = 'SLAP' | Command = 'FISH' Then Slapem();If Command = 'SVIEW' Then SViewem();If Command = 'INFO' Then Infoem();If Command = 'PUNCH' Then Punchem();If Command = 'GURU' Then Guruem();If Command = 'URL' Then Urlem();If Command = 'SAY' Then Sayem();If Command = 'CRY' Then Cryem();If Command = 'NACHOS' Then Nachosem();If Command = 'COUNTRY' Then Countryem();If Command = 'FAQ' Then Faqem();If Command = 'FAQDEL' Then Faqdelem();If Command = 'FAQLIST' Then Faqlistem();If Command = 'TOPIC' Then TOPICem();If Command = 'FAQADD' Then Faqaddem();If Command = 'PART' Then Partem();If Command = 'JOIN' Then Joinem();If Command = 'VERSION' Then Versionem();If Command = 'HUG' Then Hugem();If Command = 'OP' | Command = 'DEOP' Then OPem();If Command = 'FART' Then Fartem()
  10. If Command = 'TRYME' Then Tryme();If Command = 'FSERV' Then Do;'say /rx fserv 'nick' FServ:';Exit;End;If Command = 'TELL' | Command = 'NEWS' | Command = 'SEEN' Then Do;"RAW NOTICE" user ":Not implimented yet Sorry ! :~-|";Exit;End;If Command = 'SERVER' Then Do;GETSERVERNAME;"RAW NOTICE" user ":I am on server "R